home *** CD-ROM | disk | FTP | other *** search
- /*
- * File: JavaScript Library.js
- * Author: Mark Alldritt
- *
- *
- * Copyright © 1998-2001 All Rights Reserved
- * Late Night Software Ltd.
- * 1571 Deep Cove Road
- * N. Vancouver, B.C. CANADA
- *
- * Copying of this software in whole or in part is a violation of
- * applicable copyright laws. The authors are not responsible for any
- * losses caused by the use of or failure of this software.
- *
- */
-
-
- Core.version = "1.0b10";
- Core.copyright = "Copyright 1998-2001 Late Night Software Ltd.";
- Core.URL = "http://www.latenightsw.com/freeware/JavaScriptOSA/index.html";
-
-
- if (Core.platform == "MacOS")
- {
- // MacOS platform specific definitions
-
- MacOS.desktopFolder = MacOS.findFolder("desk");
- MacOS.temporaryItemsFolder = MacOS.findFolder("temp");
-
- MacOS.version = function () // return the MacOS version
- {
- function bcdToDecimal(value)
- {
- var result = 0;
-
- for (var i = 0; i < 8; i++)
- switch (i)
- {
- case 0:
- result += (value & 0x0000000f); break;
- case 1:
- result += ((value & 0x000000f0) >> 4) * 10; break;
- case 2:
- result += ((value & 0x00000f00) >> 8) * 100; break;
- case 3:
- result += ((value & 0x0000f000) >> 12) * 1000; break;
- case 4:
- result += ((value & 0x000f0000) >> 16) * 10000; break;
- case 5:
- result += ((value & 0x00f00000) >> 20) * 100000; break;
- case 6:
- result += ((value & 0x0f000000) >> 24) * 1000000; break;
- case 7:
- result += ((value & 0xf0000000) >> 28) * 10000000; break;
- }
-
- return result;
- }
-
- var vers = MacOS.gestalt("sysv");
- if (vers & 0x0000000f)
- return bcdToDecimal((vers >> 8) & 0x000000ff) +
- "." +
- bcdToDecimal(vers & 0x000000f0) +
- "." +
- bcdToDecimal(vers & 0x0000000f);
- else
- return bcdToDecimal((vers >> 8) & 0x000000ff) +
- "." +
- bcdToDecimal(vers & 0x000000ff);
- }
-
- MacOS.beep = function ()
- {
- MacOS.appSelf(false, false).sendAE("syso", "beep");
- }
-
- MacOS.messageBox = function(message)
- {
- MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":message,
- "ae_btns":["OK"],
- "ae_dflt":1,
- "ae_disp":1});
- }
-
- MacOS.message = MacOS.messageBox; // backwards compatibility with older versions of
- // JavaScript Library.js
-
- MacOS.warningBox = function(message)
- {
- MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":message,
- "ae_btns":["OK"],
- "ae_dflt":1,
- "ae_disp":2});
- }
-
- MacOS.errorBox = function(message)
- {
- MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":message,
- "ae_btns":["OK"],
- "ae_dflt":1,
- "ae_disp":0});
- }
-
- MacOS.ask = function(question)
- {
- var r = MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":question,
- "ae_btns":["Yes", "No"],
- "ae_dflt":1,
- "ae_disp":0});
- return r["ae_bhit"] == "Yes";
- }
-
- MacOS.pick = function(prompt, items)
- {
- return MacOS.appSelf(false).sendAE("gtqp", "chlt",
- {"ae_----":items,
- "ae_prmp":prompt})[0];
- }
-
- // Well known MacOS scriptable applications
-
- try
- {
- MacOS.finder = function() { return MacOS.appBySignature("MACS", true, true); }
- }
- catch (e) {}
- try
- {
- MacOS.urlAccess = function() { return MacOS.appBySignature("uasc", true, true); }
- }
- catch (e) {}
- try
- {
- MacOS.bbEdit = function() { return MacOS.appBySignature("R*ch", true, true); }
- }
- catch (e) {}
-
- // Applications often don't define common AppleEvent/AppleScript data types. So,
- // to help out, we provide the most frequently used ones here along with a function
- // for making others
-
- /* MacOS.AEDesc.build is broken under MacOS X
- MacOS.types = {
- makeType : function(theType) {
- var theDesc = new MacOS.AEDesc();
- theDesc.build("type(" + theType + ")");
- return theDesc;
- }};
-
- MacOS.types.string = MacOS.types.makeType("TEXT");
- MacOS.types.integer = MacOS.types.makeType("long");
- MacOS.types.shortInteger = MacOS.types.makeType("shor");
- MacOS.types.fileSpec = MacOS.types.makeType("fss ");
- MacOS.types.alias = MacOS.types.makeType("alis");
- */
-
- // Platform independant definitions
-
- Core.me = MacOS.pathToMe().toString();
- Core.home = MacOS.desktopFolder.toString();
- Core.temp = MacOS.temporaryItemsFolder.toString();
- Core.platformVersion = MacOS.version();
- Core.message = MacOS.messageBox;
- Core.warning = MacOS.warningBox;
- Core.error = MacOS.errorBox;
- Core.pick = MacOS.pick;
- }
- else if (Core.platform == "MacOSX")
- {
- // MacOS X platform specific definitions
-
- MacOS.desktopFolder = MacOS.findFolder("desk");
- MacOS.temporaryItemsFolder = MacOS.findFolder("temp");
-
- MacOS.version = function () // return the MacOS version
- {
- function bcdToDecimal(value)
- {
- var result = 0;
-
- for (var i = 0; i < 8; i++)
- switch (i)
- {
- case 0:
- result += (value & 0x0000000f); break;
- case 1:
- result += ((value & 0x000000f0) >> 4) * 10; break;
- case 2:
- result += ((value & 0x00000f00) >> 8) * 100; break;
- case 3:
- result += ((value & 0x0000f000) >> 12) * 1000; break;
- case 4:
- result += ((value & 0x000f0000) >> 16) * 10000; break;
- case 5:
- result += ((value & 0x00f00000) >> 20) * 100000; break;
- case 6:
- result += ((value & 0x0f000000) >> 24) * 1000000; break;
- case 7:
- result += ((value & 0xf0000000) >> 28) * 10000000; break;
- }
-
- return result;
- }
-
- var vers = MacOS.gestalt("sysv");
- if (vers & 0x0000000f)
- return bcdToDecimal((vers >> 8) & 0x000000ff) +
- "." +
- bcdToDecimal(vers & 0x000000f0) +
- "." +
- bcdToDecimal(vers & 0x0000000f);
- else
- return bcdToDecimal((vers >> 8) & 0x000000ff) +
- "." +
- bcdToDecimal(vers & 0x000000ff);
- }
-
- MacOS.beep = function ()
- {
- MacOS.appSelf(false, false).sendAE("syso", "beep");
- }
-
- MacOS.messageBox = function(message)
- {
- MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":message,
- "ae_btns":["OK"],
- "ae_dflt":1,
- "ae_disp":1});
- }
-
- MacOS.message = MacOS.messageBox; // backwards compatibility with older versions of
- // JavaScript Library.js
-
- MacOS.warningBox = function(message)
- {
- MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":message,
- "ae_btns":["OK"],
- "ae_dflt":1,
- "ae_disp":2});
- }
-
- MacOS.errorBox = function(message)
- {
- MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":message,
- "ae_btns":["OK"],
- "ae_dflt":1,
- "ae_disp":0});
- }
-
- MacOS.ask = function(question)
- {
- var r = MacOS.appSelf(false).sendAE("syso", "dlog",
- {"ae_----":question,
- "ae_btns":["Yes", "No"],
- "ae_dflt":1,
- "ae_disp":0});
- return r["ae_bhit"] == "Yes";
- }
-
- MacOS.pick = function(prompt, items)
- {
- return MacOS.appSelf(false).sendAE("gtqp", "chlt",
- {"ae_----":items,
- "ae_prmp":prompt})[0];
- }
-
- // Well known MacOS X applications
-
- try
- {
- MacOS.finder = function() { return MacOS.appBySignature("MACS", true, true); }
- }
- catch (e) {}
-
- // Platform independant definitions
-
- Core.me = MacOS.pathToMe().toString();
- Core.home = MacOS.desktopFolder.toString();
- Core.temp = MacOS.temporaryItemsFolder.toString();
- Core.platformVersion = MacOS.version();
- Core.message = MacOS.messageBox;
- Core.warning = MacOS.warningBox;
- Core.error = MacOS.errorBox;
- Core.pick = MacOS.pick;
- }
- else if (Core.platform == "Windows")
- {
- Core.me = "";
- Core.home = "";
- Core.temp = "";
- Core.platformVersion = "0.0";
- Core.message = function(message) { };
- }
-